package initializer

import (
	"github.com/spf13/viper"
	"sgo/sconfig"
	"sgo/scontext"
)

type ViperInitializer struct{}

func (ViperInitializer) initialize(sc *scontext.SgoContext) error {
	// 指定配置文件路径
	viper.SetConfigFile(sc.ConfigPath)
	// 读取配置文件
	err := viper.ReadInConfig()
	if err != nil {
		return err
	}
	// todo 设置默认值
	// todo 剥离项目中的硬编码，形成一份配置文件
	setDefault()
	// 结构体映射
	conf := new(sconfig.SgoConfig)
	err = viper.Unmarshal(conf)
	if err != nil {
		return err
	}
	sc.ViperConfig = conf
	return nil
}

// 配置默认值
func setDefault() {

}
